Skip to content

docs(vrs): specify Claude native DING delivery - #232

Closed
myobie wants to merge 3 commits into
agent/native-delivery-vrsfrom
agent/native-delivery-claude-spec
Closed

docs(vrs): specify Claude native DING delivery#232
myobie wants to merge 3 commits into
agent/native-delivery-vrsfrom
agent/native-delivery-claude-spec

Conversation

@myobie

@myobie myobie commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • define the deliver "mcp" Claude transport and durable inbox boundary
  • record the measured direct-server startup contract: one exact, owned development-channel confirmation per Claude process
  • distinguish unmanaged hosts from deployments whose managed policy requires channelsEnabled: true
  • define active-turn queueing, multi-notification coalescing, and untrusted channel content
  • add a repository-owned no-tools probe for idle wake and active-turn queue evidence
  • keep the existing ding screen grammar unchanged

Dependency

This change is stacked on #229. Review this pull request as the Claude-specific addition to that shared DING contract.

Live provider evidence

The direct-server path is accepted for the locally built and pinned st2 MCP server. It uses --dangerously-load-development-channels server:<name> and one bounded startup confirmation in the PTY st2 owns. It does not inspect or type into the screen for each DING.

  • Claude Code 2.1.226 accepted the development selector on a host with no managed policy file. A no-tools server pushed one idle notification; Claude displayed it and started an engine turn without user input after the startup confirmations.
  • Claude Code 2.1.227 registered the same no-tools channel and pushed A, B, and C. A started turn 1. B arrived 53 ms after that start and C 100 ms later. Both arrived before turn 1 ended. Claude then started and completed turn 2 with both waiting items.
  • A connected directly declared server without the development selector was rejected by the approved-channel allowlist. MCP connection alone is not channel acceptance.
  • Claude can treat channel content as untrusted and refuse an embedded instruction. The receipt is provider presentation and wake, not model obedience or a particular reply.
  • Managed deployments must set channelsEnabled: true. A managed plugin allowlist is the zero-confirmation alternative, but it is unmeasured and is not worth the marketplace, installation, and policy surface while the fleet owns one exact startup confirmation.

Official provider references:

Validation

  • git diff --check
  • bash -n tools/channel-probe/run-probe.sh
  • node --check tools/channel-probe/probe-server.js
  • idle probe: PROVED, Claude Code 2.1.227
  • active queue probe: PROVED, three notifications crossed turn 1 and completed turn 2
  • cargo test --test invariants
  • cargo test --all-targets reaches the pre-existing issue Exact main fails nested Agent Spec classification in catalog_diff #183 catalog_diff failure; excluding that known case, later environment-sensitive eval_up cases still expect unqualified PTY names while this host reports host-qualified names
  • strict Clippy still reports eight pre-existing lints in unchanged Rust files
  • hosted Nix run 31460691251 succeeded at exact head c102904

Review

Please review exact head c102904. This pull request remains draft for Nathan's exact-head review.

@schickling schickling added area:ding DING delivery: inbox notice into a running agent · Set: manual area:driver Harness drivers: launch, MCP, app-server, native delivery · Set: manual area:vrs VRS documentation system (vision/requirements/spec) · Set: manual harness:claude Claude Code-specific behavior · Set: manual origin:agent Filed or primarily produced by an AI agent · Set: manual type:docs Documentation-only change or documentation task · Set: manual labels Aug 18, 2026
@myobie

myobie commented Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

Closing. Native DING delivery shipped and every agent on the fleet runs on it, so this draft specifies a decision that is already made and in production. Closed by Silber.cos on Nathan's word, 2026-08-24. Reopen if the spec is wanted as documentation.

@myobie myobie closed this Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ding DING delivery: inbox notice into a running agent · Set: manual area:driver Harness drivers: launch, MCP, app-server, native delivery · Set: manual area:vrs VRS documentation system (vision/requirements/spec) · Set: manual harness:claude Claude Code-specific behavior · Set: manual origin:agent Filed or primarily produced by an AI agent · Set: manual type:docs Documentation-only change or documentation task · Set: manual

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants